﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sinacor.Infra.Service.Security.Services;

namespace Sinacor.Servico.Bovespa.Cliente.Service.ServiceImplementation
{
    [SinacorServiceBehavior]
    public class RelacionamentoBroker : ServiceContract.IRelacionamentoBroker
    {
        #region IRelacionamentoBroker Members

        /// <table>TBORELC_BRKR</table>
        public void AlterarRelacionamentoBroker(DataContract.Request.RelacionamentoBrokerRequest request)
        {
            BusinessLogic.RelacionamentoBroker blRelacionamentoBroker = new BusinessLogic.RelacionamentoBroker();
            Translator.DataContractToBusinessEntity.RelacionamentoBroker translatorRequest = new Translator.DataContractToBusinessEntity.RelacionamentoBroker();
            blRelacionamentoBroker.AlterarRelacionamentoBroker(translatorRequest.ToRelacionamentoBroker(request));
        }

        /// <table>TBORELC_BRKR</table>
        public List<DataContract.Response.RelacionamentoBrokerResponse> ConsultarRelacionamentosBroker(DataContract.Request.FiltroRelacionamentoBrokerRequest request)
        {
            BusinessLogic.RelacionamentoBroker blRelacionamentoBroker = new BusinessLogic.RelacionamentoBroker();
            Translator.DataContractToBusinessEntity.RelacionamentoBroker translatorRequest = new Translator.DataContractToBusinessEntity.RelacionamentoBroker();
            Translator.BusinessEntityToDataContract.RelacionamentoBroker translatorResponse = new Translator.BusinessEntityToDataContract.RelacionamentoBroker();
            return translatorResponse.ToRelacionamentoBrokerResponse(blRelacionamentoBroker.ConsultarRelacionamentosBroker(translatorRequest.ToFiltroRelacionamentoBroker(request)));
        }

        /// <table>TBORELC_BRKR</table>
        public void ExcluirRelacionamentoBroker(DataContract.Request.FiltroRelacionamentoBrokerChaveRequest request)
        {
            BusinessLogic.RelacionamentoBroker blRelacionamentoBroker = new BusinessLogic.RelacionamentoBroker();
            Translator.DataContractToBusinessEntity.RelacionamentoBroker translatorRequest = new Translator.DataContractToBusinessEntity.RelacionamentoBroker();
            blRelacionamentoBroker.ExcluirRelacionamentoBroker(translatorRequest.ToFiltroRelacionamentoBrokerChave(request));
        }

        /// <table>TBORELC_BRKR, TSCCLIBOL</table>
        public void IncluirRelacionamentoBroker(DataContract.Request.RelacionamentoBrokerRequest request)
        {
            BusinessLogic.RelacionamentoBroker blRelacionamentoBroker = new BusinessLogic.RelacionamentoBroker();
            Translator.DataContractToBusinessEntity.RelacionamentoBroker translatorRequest = new Translator.DataContractToBusinessEntity.RelacionamentoBroker();
            blRelacionamentoBroker.IncluirRelacionamentoBroker(translatorRequest.ToRelacionamentoBroker(request));
        }

        /// <table>TBORELC_BRKR</table>
        public DataContract.Response.RelacionamentoBrokerResponse ObterRelacionamentoBroker(DataContract.Request.FiltroRelacionamentoBrokerChaveRequest request)
        {
            BusinessLogic.RelacionamentoBroker blRelacionamentoBroker = new BusinessLogic.RelacionamentoBroker();
            Translator.DataContractToBusinessEntity.RelacionamentoBroker translatorRequest = new Translator.DataContractToBusinessEntity.RelacionamentoBroker();
            Translator.BusinessEntityToDataContract.RelacionamentoBroker translatorResponse = new Translator.BusinessEntityToDataContract.RelacionamentoBroker();
            return translatorResponse.ToRelacionamentoBrokerResponse(blRelacionamentoBroker.ObterRelacionamentoBroker(translatorRequest.ToFiltroRelacionamentoBrokerChave(request)));
        }

        #endregion
    }
}
